#include "Collision.h"

#include "Vaisseau.h"
#include "Shoot.h"
#include <typeinfo>
#include <iostream>
#include <cmath>

using namespace std;

bool Collision::touch(Shoot &s, Vaisseau &e) {
    bool res = false;

    if(s.getType()=="simple"){

        if((s.getX() < (e.getX() + (e.getLargeur()/2))) && (s.getX() > (e.getX() - (e.getLargeur()/2)))) {
            if((s.getY() < (e.getY() + (e.getHauteur()/2))) && (s.getY() > (e.getY() - (e.getHauteur()/2)))) {
                res = true;
            }
        }
    }
    if(s.getType()=="circle"){
        // Calcul disante d'un pt a une droite, si < R interesection.
        if(sqrt(pow(e.getX()-s.getX(),2)+pow(e.getY()-s.getY(),2))<=s.getRayon()){
            res = true;
        }
        /*if(sqrt(pow((e.getLargeur()+e.getX())-s.getX(),2)+pow(e.getY()-s.getY(),2))<=s.getRayon()){
             res = true;
        }
        if(sqrt(pow((e.getLargeur()+e.getX())-s.getX(),2)+pow((e.getHauteur()+e.getY())-s.getY(),2))<=s.getRayon()){
             res = true;
        }
        if(sqrt(pow(e.getX()-s.getX(),2)+pow((e.getHauteur()+e.getY())-s.getY(),2))<=s.getRayon()){
             res = true;
        }*/

    }
    return res;
}
